Paul Eggert [Tue, 21 Jun 2011 00:59:02 +0000 (17:59 -0700)]
Merge from trunk.
Jan Djärv [Mon, 20 Jun 2011 20:49:12 +0000 (22:49 +0200)]
* x-dnd.el (x-dnd-version-from-flags)
(x-dnd-more-than-3-from-flags): New functions that handle long-as-cons
and long as number.
(x-dnd-handle-xdnd): Call functions above.
Fixes: debbugs:8899
Stefan Monnier [Mon, 20 Jun 2011 20:16:20 +0000 (16:16 -0400)]
* lisp/minibuffer.el (completion-metadata): Prepend the alist with `metadata'.
(completion-try-completion, completion-all-completions): Compute the
metadata argument if it's missing; make it optional.
Fixes: debbugs:8795
Stefan Monnier [Mon, 20 Jun 2011 16:14:01 +0000 (12:14 -0400)]
* doc/misc/eshell.texi (Known problems): Fix typo.
Stefan Monnier [Mon, 20 Jun 2011 16:02:31 +0000 (12:02 -0400)]
Use completion-at-point rather than completion-in-region.
* lisp/wid-edit.el: Use lexical scoping and move towards completion-at-point.
(widget-complete): Use new :completion-function property.
(widget-completions-at-point): New function.
(default): Use :completion-function instead of :complete.
(widget-default-completions): Rename from widget-default-complete, rewrite.
(widget-string-complete, widget-file-complete, widget-color-complete):
Remove functions.
(file, symbol, function, variable, coding-system, color):
* lisp/international/mule-cmds.el (default-input-method, charset)
(language-info-custom-alist):
* lisp/cus-edit.el (face): Use new property :completions.
* lisp/progmodes/pascal.el (pascal-completions-at-point): New function.
(pascal-mode): Use it.
(pascal-mode-map): Use completion-at-point.
(pascal-toggle-completions): Make obsolete.
(pascal-complete-word, pascal-show-completions):
* lisp/progmodes/octave-mod.el (octave-complete-symbol):
Redefine as obsolete alias.
* lisp/progmodes/octave-inf.el (inferior-octave-completion-at-point):
Signal absence of completion info for old Octave,
(inferior-octave-complete): Redefine as obsolete alias.
* lisp/progmodes/meta-mode.el: Use lexical-binding and completion-at-point.
(meta-completions-at-point): Rename from meta-complete-symbol and
adapt it for use on completion-at-point-functions.
(meta-common-mode): Use it.
(meta-looking-at-backward, meta-match-buffer): Remove.
(meta-complete-symbol): Redefine as obsolete alias.
(meta-common-mode-map): Use completion-at-point.
* lisp/progmodes/make-mode.el: Use lexical-binding and completion-at-point.
(makefile-mode-map): Use completion-at-point.
(makefile-completions-at-point): Rename from makefile-complete and
adapt it for use on completion-at-point-functions.
(makefile-mode): Use it.
(makefile-complete): Redefine as obsolete alias.
Deniz Dogan [Mon, 20 Jun 2011 12:55:24 +0000 (14:55 +0200)]
* lisp/net/rcirc.el: Delete trailing whitespaces once and for all.
Deniz Dogan [Mon, 20 Jun 2011 12:54:05 +0000 (14:54 +0200)]
* src/process.c (Fset_process_buffer): Clarify return value in docstring.
Martin Rudalics [Mon, 20 Jun 2011 08:41:57 +0000 (10:41 +0200)]
Restore old behavior of get-window-with-predicate and get-buffer-window-list.
* window.el (get-window-with-predicate): Start scanning with
window following selected window to restore Emacs 23 behavior.
Clarify doc-string.
(get-buffer-window-list): Start scanning with selected window to
restore Emacs 23 behavior. Clarify doc-string.
Paul Eggert [Mon, 20 Jun 2011 07:21:06 +0000 (00:21 -0700)]
* termcap.c: Don't assume sizes fit in int and never overflow.
(struct termcap_buffer, tgetent): Use ptrdiff_t, not int, for sizes.
(gobble_line): Check for size-calculation overflow.
Paul Eggert [Mon, 20 Jun 2011 06:14:57 +0000 (23:14 -0700)]
* minibuf.c (Fread_buffer): Don't assume strlen fits in int.
Paul Eggert [Mon, 20 Jun 2011 06:11:36 +0000 (23:11 -0700)]
* lread.c (intern, intern_c_string): Don't assume strlen fits in int.
Paul Eggert [Mon, 20 Jun 2011 06:07:16 +0000 (23:07 -0700)]
* keyboard.c (parse_tool_bar_item): Avoid need for strlen.
Paul Eggert [Mon, 20 Jun 2011 06:03:10 +0000 (23:03 -0700)]
* image.c (xpm_scan) [HAVE_NS && !HAVE_XPM]:
Don't assume string length fits in int.
Paul Eggert [Mon, 20 Jun 2011 05:54:33 +0000 (22:54 -0700)]
* gtkutil.c (style_changed_cb): Avoid need for strlen.
Paul Eggert [Mon, 20 Jun 2011 05:51:47 +0000 (22:51 -0700)]
* font.c (font_intern_prop): Don't assume string length fits in int.
Don't assume integer property fits in fixnum.
* font.h (font_intern_prop): 2nd arg is now ptrdiff_t, not int.
Daniel Colascione [Mon, 20 Jun 2011 03:36:16 +0000 (20:36 -0700)]
* emacs-lisp/syntax.el (syntax-ppss): Further improve docstring.
Paul Eggert [Mon, 20 Jun 2011 03:21:35 +0000 (20:21 -0700)]
* font.c: Don't assume string length fits in int.
(font_parse_xlfd, font_parse_fcname, font_unparse_fcname):
Use ptrdiff_t, not int.
Paul Eggert [Mon, 20 Jun 2011 03:11:40 +0000 (20:11 -0700)]
* filelock.c: Fix some buffer overrun and integer overflow issues.
(get_boot_time): Don't assume that gzip command string fits in 100 bytes.
Reformulate so as not to need the command string.
Invoke gzip -cd rather than gunzip, as it's more portable.
(lock_info_type, lock_file_1, lock_file):
Don't assume pid_t and time_t fit in unsigned long.
(LOCK_PID_MAX): Remove; we now use more-reliable bounds.
(current_lock_owner): Prefer signed type for sizes.
Use memcpy, not strncpy, where memcpy is what is really wanted.
Don't assume (via atoi) that time_t and pid_t fit in int.
Check for time_t and/or pid_t out of range, e.g., via a network share.
Don't alloca where an auto var works fine.
Paul Eggert [Sun, 19 Jun 2011 19:06:16 +0000 (12:06 -0700)]
* fileio.c: Fix some integer overflow issues.
(file_name_as_directory, Fexpand_file_name, Fsubstitute_in_file_name):
Don't assume string length fits in int.
(directory_file_name): Don't assume string length fits in long.
(make_temp_name): Don't assume pid fits in int, or that its print
length is less than 20.
Chong Yidong [Sun, 19 Jun 2011 18:59:58 +0000 (14:59 -0400)]
Fix last change.
Chong Yidong [Sun, 19 Jun 2011 18:53:49 +0000 (14:53 -0400)]
* lisp/files.el (auto-mode-alist): Entry for m2-mode (Bug#8852).
Paul Eggert [Sun, 19 Jun 2011 18:44:58 +0000 (11:44 -0700)]
* data.c (Fsubr_name): Rewrite to avoid a strlen call.
Paul Eggert [Sun, 19 Jun 2011 18:44:09 +0000 (11:44 -0700)]
* coding.c (make_subsidiaries): Don't assume string length fits in int.
Chong Yidong [Sun, 19 Jun 2011 18:42:06 +0000 (14:42 -0400)]
* info.el (Info-apropos-toc-nodes): Minor doc fix (Bug#8833).
Paul Eggert [Sun, 19 Jun 2011 18:40:02 +0000 (11:40 -0700)]
* callproc.c (child_setup): Rewrite to avoid two strlen calls.
Glenn Morris [Sun, 19 Jun 2011 18:39:24 +0000 (14:39 -0400)]
Auto-commit of loaddefs files.
Paul Eggert [Sun, 19 Jun 2011 18:38:58 +0000 (11:38 -0700)]
* process.c (Fformat_network_address): Use EMACS_INT, not EMACS_UINT.
We prefer signed integers, even for size calculations.
Paul Eggert [Sun, 19 Jun 2011 18:37:51 +0000 (11:37 -0700)]
* emacs.c: Don't assume string length fits in 'int'.
(DEFINE_DUMMY_FUNCTION, sort_args): Use ptrdiff_t, not int.
(main): Don't invoke strlen when not needed.
Glenn Morris [Sun, 19 Jun 2011 18:33:17 +0000 (14:33 -0400)]
Auto-commit of generated files.
Paul Eggert [Sun, 19 Jun 2011 18:32:55 +0000 (11:32 -0700)]
* dbusbind.c (XD_ERROR): Don't arbitrarily truncate string.
(XD_DEBUG_MESSAGE): Don't waste a byte.
Paul Eggert [Sun, 19 Jun 2011 18:30:19 +0000 (11:30 -0700)]
* callproc.c: Don't assume string length fits in 'int.'
Paul Eggert [Sun, 19 Jun 2011 18:27:58 +0000 (11:27 -0700)]
* buffer.c (init_buffer): Don't assume string length fits in 'int'.
Paul Eggert [Sun, 19 Jun 2011 18:22:16 +0000 (11:22 -0700)]
* lib/unistd.in.h, m4/getloadavg.m4: Merge from gnulib.
Martin Rudalics [Sun, 19 Jun 2011 14:32:12 +0000 (16:32 +0200)]
Regroup clauses in display-buffer-normalize-options (Bug#8851) and (Bug#8856).
* window.el (display-buffer-normalize-options): Move special-display-p
group after pop-up-frame group (Bug#8851) and (Bug#8856).
Martin Rudalics [Sun, 19 Jun 2011 10:17:56 +0000 (12:17 +0200)]
Provide functions for saving window configurations as Lisp objects.
* window.el (window-list-no-nils, window-state-ignored-parameters)
(window-state-get-1, window-state-get, window-state-put-list)
(window-state-put-1, window-state-put-2, window-state-put): New
functions.
Martin Rudalics [Sun, 19 Jun 2011 09:59:58 +0000 (11:59 +0200)]
Sanitize processing of display specifiers; new option frame-auto-delete.
* window.el (display-buffer-other-window-means-other-frame):
Call display-buffer-normalize-alist.
(display-buffer-normalize-specifiers-1): Rename to
display-buffer-normalize-argument. New argument other-frame.
Rewrite.
(display-buffer-normalize-specifiers-2): Rename to
display-buffer-normalize-options.
(display-buffer-normalize-alist-1): New function.
(display-buffer-normalize-specifiers-3): Rename to
display-buffer-normalize-alist. Call
display-buffer-normalize-alist-1.
(display-buffer-normalize-options-inhibit): New variable.
(display-buffer-normalize-specifiers): Rewrite calling
display-buffer-normalize-alist,
display-buffer-normalize-argument, and
display-buffer-normalize-options. Don't call the latter if
display-buffer-normalize-options-inhibit is non-nil.
(frame-auto-delete): New option.
(window-deletable-p): Use frame-auto-delete.
Paul Eggert [Sun, 19 Jun 2011 01:35:03 +0000 (18:35 -0700)]
* lread.c (string_to_number): Simplify the 2011-04-26 change by invoking xsignal1.
Paul Eggert [Sun, 19 Jun 2011 01:31:41 +0000 (18:31 -0700)]
* lread.c (invalid_syntax): Omit length argument.
All uses changed. This doesn't fix a bug, but it simplifies the
code away from its former Hollerith-constant appearance, and it's
one less 'int' to worry about when looking at integer-overflow issues.
Paul Eggert [Sun, 19 Jun 2011 00:11:45 +0000 (17:11 -0700)]
* lisp.h (make_fixnum_or_float): Remove unnecessary cast to EMACS_INT.
Paul Eggert [Sun, 19 Jun 2011 00:09:24 +0000 (17:09 -0700)]
* lisp.h (LIST_END_P): Remove unused macro and its bogus comment.
Paul Eggert [Sun, 19 Jun 2011 00:06:17 +0000 (17:06 -0700)]
* lisp.h (DEFUN): Remove bogus use of sizeof (struct Lisp_Subr).
This didn't break anything, but it didn't help either.
It's confusing to put a bogus integer in a place where the actual
value does not matter.
Teodor Zlatanov [Sat, 18 Jun 2011 22:23:55 +0000 (22:23 +0000)]
auth-source.el (auth-source-netrc-use-gpg-tokens): Replace `auth-source-save-secrets' with a more sensitive alist that can be configured per file. Experimental, so defaults to 'never.
(auth-source-netrc-create): Use it. Still experimental code.
(with-auth-source-epa-overrides): Use `find-file-hooks' if `find-file-hook' is unbound (XEmacs fix). Fix backquoting bug.
Chong Yidong [Sat, 18 Jun 2011 21:12:33 +0000 (17:12 -0400)]
Add rx.el support for numbered groups (Bug#8776).
* lisp/emacs-lisp/rx.el (rx-constituents): Add support for numbered groups.
(rx-submatch-n): New function.
(rx): Document it.
Chong Yidong [Sat, 18 Jun 2011 20:17:30 +0000 (16:17 -0400)]
* dired-x.el (dired-mark-unmarked-files): Fix interactive spec (Bug#8768).
Chong Yidong [Sat, 18 Jun 2011 19:21:16 +0000 (15:21 -0400)]
* lisp/textmodes/fill.el (default-justification): Add :safe (Bug#8879).
Chong Yidong [Sat, 18 Jun 2011 19:15:06 +0000 (15:15 -0400)]
Fixes for GLYPH_DEBUG.
* dispnew.c (add_window_display_history): Use BVAR.
* xdisp.c (debug_method_add): Use BVAR.
(check_window_end, dump_glyph_matrix, dump_glyph)
(dump_glyph_row, dump_glyph_string): Convert arglist to ANSI C.
* xfaces.c (check_lface_attrs, check_lface, dump_realized_face):
Likewise.
* xfns.c (Fx_create_frame, x_create_tip_frame): Delay image cache
check till after the cache is created in init_frame_faces.
Paul Eggert [Sat, 18 Jun 2011 19:13:46 +0000 (12:13 -0700)]
* lisp.h (XSET) [USE_LISP_UNION_TYPE]: Use uintptr_t and intptr_t,
not EMACS_UINT and EMACS_INT, when converting pointer to integer.
This avoids a GCC warning when WIDE_EMACS_INT.
Paul Eggert [Sat, 18 Jun 2011 19:08:22 +0000 (12:08 -0700)]
* lisp.h (struct Lisp_Bool_Vector.size): EMACS_INT, not EMACS_UINT.
We prefer signed types, and the value cannot exceed the EMACS_INT
range anyway (because otherwise the length would not be representable).
Chong Yidong [Sat, 18 Jun 2011 18:49:19 +0000 (14:49 -0400)]
Fix for disable-theme/
defface interaction (Bug#8889).
* lisp/cus-face.el (custom-declare-face): Call custom-theme-recalc face
anytime existing face settings are present.
Paul Eggert [Sat, 18 Jun 2011 18:32:22 +0000 (11:32 -0700)]
* lisp.h (union Lisp_Object.i): EMACS_INT, not EMACS_UINT.
This is for consistency with the ordinary, non-USE_LISP_UNION_TYPE,
implementation.
Paul Eggert [Sat, 18 Jun 2011 18:29:19 +0000 (11:29 -0700)]
* indent.c (Fcompute_motion): Don't assume hscroll and tab offset fit in int.
Paul Eggert [Sat, 18 Jun 2011 18:28:32 +0000 (11:28 -0700)]
* insdel.c: Omit unnecessary forward decls, to simplify future changes.
Paul Eggert [Sat, 18 Jun 2011 18:24:12 +0000 (11:24 -0700)]
* indent.c (sane_tab_width): New function.
(current_column, scan_for_column, Findent_to, position_indentation)
(compute_motion): Use it. This is just for clarity.
Paul Eggert [Sat, 18 Jun 2011 18:12:25 +0000 (11:12 -0700)]
* image.c (xbm_image_p): Don't assume stated width and height fit in int.
Paul Eggert [Sat, 18 Jun 2011 18:09:17 +0000 (11:09 -0700)]
* lisp.h (lint_assume): New macro.
* composite.c (composition_gstring_put_cache):
* ftfont.c (ftfont_shape_by_flt): Use it to pacify GCC 4.6.0.
Paul Eggert [Sat, 18 Jun 2011 16:45:23 +0000 (09:45 -0700)]
* fns.c (Ffillarray): Don't shadow a local.
Chong Yidong [Sat, 18 Jun 2011 16:23:11 +0000 (12:23 -0400)]
Use define-derived-mode in delphi-mode.
* lisp/progmodes/delphi.el (delphi-mode-syntax-table): Use defvar.
(delphi-mode): Use define-derived-mode to inherit from prog-mode.
Remove unused argument.
Paul Eggert [Sat, 18 Jun 2011 16:20:05 +0000 (09:20 -0700)]
* editfns.c: Omit unnecessary forward decls, to simplify future changes.
Paul Eggert [Sat, 18 Jun 2011 16:19:18 +0000 (09:19 -0700)]
* ftfont.c (ftfont_shape_by_flt): Use signed integers for lengths.
Paul Eggert [Sat, 18 Jun 2011 16:15:19 +0000 (09:15 -0700)]
* font.c (Ffont_shape_gstring): Don't assume glyph len fits in 'int'.
Paul Eggert [Sat, 18 Jun 2011 16:10:16 +0000 (09:10 -0700)]
* fns.c (mapcar1): Declare byte as byte, for clarity.
Paul Eggert [Sat, 18 Jun 2011 16:07:41 +0000 (09:07 -0700)]
* fns.c (Ffillarray): Use same idx as rest of code here.
Paul Eggert [Sat, 18 Jun 2011 16:04:07 +0000 (09:04 -0700)]
* fns.c: Check that character arg fits in 'int'.
Paul Eggert [Sat, 18 Jun 2011 16:02:03 +0000 (09:02 -0700)]
* fns.c: Don't assume string byte-length fits in 'int'.
Paul Eggert [Sat, 18 Jun 2011 16:01:08 +0000 (09:01 -0700)]
* fns.c: Use much-faster test for byte-length change.
Paul Eggert [Sat, 18 Jun 2011 15:57:22 +0000 (08:57 -0700)]
* fns.c (Ffillarray): Don't assume bool vector size fits in 'int'.
Paul Eggert [Sat, 18 Jun 2011 15:39:24 +0000 (08:39 -0700)]
* alloc.c (Fmake_bool_vector): Avoid unnecessary multiplication.
Martin Rudalics [Sat, 18 Jun 2011 15:14:35 +0000 (17:14 +0200)]
One more fix for display-buffer-normalize-specifiers-1.
* window.el (display-buffer-normalize-specifiers-1): Fix thinko.
Paul Eggert [Sat, 18 Jun 2011 15:08:31 +0000 (08:08 -0700)]
* fns.c (concat): Catch string overflow earlier.
Do not rely on integer wraparound.
Martin Rudalics [Sat, 18 Jun 2011 14:23:14 +0000 (16:23 +0200)]
Additional fixes in handling of buffer display specifiers.
* window.el (display-buffer-default-specifiers): Remove
pop-up-frame. Add pop-up-window-min-height,
pop-up-window-min-width, and another reuse-window specifier
(Bug#8882). Reported by Dan Nicolaescu <dann@gnu.org>.
(display-buffer-normalize-specifiers-2): Handle
split-height-threshold and split-width-threshold also when
pop-up-windows is unset. Add a reuse-window specifier for the
case popping up a new window fails.
(special-display-popup-frame): Remove double quoting.
Paul Eggert [Sat, 18 Jun 2011 05:51:59 +0000 (22:51 -0700)]
* dispextern.h (struct it.overlay_strings_charpos): EMACS_INT, not int.
Paul Eggert [Fri, 17 Jun 2011 19:55:19 +0000 (12:55 -0700)]
* dispextern.h (struct it.selective): Now EMACS_INT, not int.
* xdisp.c (forward_to_next_line_start)
(back_to_previous_visible_line_start)
(reseat_at_next_visible_line_start, next_element_from_buffer):
Don't arbitrarily truncate the value of 'selective' to int.
Paul Eggert [Fri, 17 Jun 2011 19:49:04 +0000 (12:49 -0700)]
* xdisp.c (init_iterator): Use XINT, not XFASTINT; it might be < 0.
Paul Eggert [Fri, 17 Jun 2011 19:45:29 +0000 (12:45 -0700)]
* composite.c (get_composition_id, composition_gstring_put_cache): Use EMACS_INT,
not EMACS_UINT, for indexes.
Stefan Monnier [Fri, 17 Jun 2011 18:52:46 +0000 (14:52 -0400)]
* lisp/pcomplete.el: Convert to lexical binding and fix bug#8819.
(pcomplete-suffix-list): Mark as obsolete.
(pcomplete-completions-at-point): Capture pcomplete-norm-func and
pcomplete-seen in the closure.
(pcomplete-comint-setup): Setup completion-at-point as well.
(pcomplete--entries): New function.
(pcomplete--env-regexp): New var.
(pcomplete-entries): Rewrite to work with partial-completion and
without relying on pcomplete-suffix-list.
(pcomplete-pare-list): Remove, unused.
* lisp/shell.el (shell-completion-vars): Set pcomplete-termination-string
according to comint-completion-addsuffix.
Glenn Morris [Fri, 17 Jun 2011 17:41:21 +0000 (13:41 -0400)]
Auto-commit of generated files.
Glenn Morris [Fri, 17 Jun 2011 17:32:58 +0000 (13:32 -0400)]
Fix previous change.
Glenn Morris [Fri, 17 Jun 2011 17:29:50 +0000 (13:29 -0400)]
Small configure.in fix.
Ref: http://lists.gnu.org/archive/html/emacs-buildstatus/2011-06/msg00007.html
* configure.in: Restore the behavior of checking crt-dir only
when the user specified it (not all platforms use it).
Martin Rudalics [Fri, 17 Jun 2011 16:07:55 +0000 (18:07 +0200)]
Update doc-string of display-buffer-alist.
Stefan Monnier [Fri, 17 Jun 2011 15:18:54 +0000 (11:18 -0400)]
* src/fns.c (Fsafe_length): Yet another int/Lisp_Object mixup.
Martin Rudalics [Fri, 17 Jun 2011 14:50:11 +0000 (16:50 +0200)]
Rewrite display-buffer-alist and display-buffer-normalize-specifiers.
* window.el (display-buffer-alist): Set pop-up-window-min-height
and pop-up-window-min-width in default value. Reported by
Thierry Volpiatto <thierry.volpiatto@gmail.com>. New specifier
other-window-means-other-frame.
(display-buffer-macro-specifiers): Comment out entry for
other-window specifier.
(display-buffer-other-window-means-other-frame): New function.
(display-buffer-normalize-specifiers-1): New arguments
buffer-name and label. Treat other-window case specially.
(display-buffer-normalize-specifiers-2): Treat other-window case
specially.
(display-buffer-normalize-specifiers-3): New function.
(display-buffer-normalize-specifiers): Call
display-buffer-normalize-specifiers-3.
Glenn Morris [Fri, 17 Jun 2011 10:18:17 +0000 (06:18 -0400)]
Auto-commit of generated files.
Martin Rudalics [Fri, 17 Jun 2011 08:45:37 +0000 (10:45 +0200)]
Fix handling of old `display-buffer' options (bug#8851) (bug#8856).
* window.el (display-buffer-normalize-specifiers-1): Don't
check pop-up-frames for 'unset initialization.
(display-buffer-normalize-specifiers-2): Major rewrite using
special-display-p and same-window-p (Bug#8851) and (Bug#8856).
(pop-up-frames, display-buffer-reuse-frames)
(display-buffer-mark-dedicated): Don't initialize to 'unset.
Suggested by David Engster <deng@randomsample.de>.
(even-window-heights): Initialize to 'unset.
(display-buffer-alist-set): Handle new 'unset initializations.
Paul Eggert [Fri, 17 Jun 2011 08:27:36 +0000 (01:27 -0700)]
* composite.c: Don't truncate sizes to 'int'.
(composition_gstring_p, composition_reseat_it)
(composition_adjust_point): Use EMACS_INT, not int.
Paul Eggert [Fri, 17 Jun 2011 08:17:29 +0000 (01:17 -0700)]
* category.h (CATEGORY_SET_P): Remove unnecessary cast to EMACS_INT.
Paul Eggert [Fri, 17 Jun 2011 08:14:30 +0000 (01:14 -0700)]
* buffer.c: Include <verify.h>.
(init_buffer_once): Check at compile-time, not run-time.
Paul Eggert [Fri, 17 Jun 2011 08:10:34 +0000 (01:10 -0700)]
* buffer.c (record_overlay_string): Check for size-calculation overflow.
(struct sortstrlist.size, struct sortlist.used): Don't truncate size to int.
Paul Eggert [Fri, 17 Jun 2011 07:57:42 +0000 (00:57 -0700)]
* buffer.c (struct sortstr.size, record_overlay_string): Don't truncate size to int.
Paul Eggert [Fri, 17 Jun 2011 07:52:35 +0000 (00:52 -0700)]
* buffer.c (compare_overlays, cmp_for_strings): Avoid subtraction overflow.
Paul Eggert [Fri, 17 Jun 2011 07:49:50 +0000 (00:49 -0700)]
* buffer.c (struct sortstr.priority): Now EMACS_INT, not int.
Paul Eggert [Fri, 17 Jun 2011 07:47:18 +0000 (00:47 -0700)]
* buffer.c (struct sortvec.priority): Now EMACS_INT, not int.
Martin Rudalics [Fri, 17 Jun 2011 06:04:44 +0000 (08:04 +0200)]
Fix two typos in same-window-p.
* window.el (same-window-p): Fix two typos introduced when
adding with-no-warnings.
Paul Eggert [Thu, 16 Jun 2011 23:10:17 +0000 (16:10 -0700)]
* m4/lstat.m4: Merge from gnulib (Bug#8878).
Paul Eggert [Thu, 16 Jun 2011 22:50:46 +0000 (15:50 -0700)]
* lisp.h: Include <limits.h>, for INT_MAX, LONG_MAX, LLONG_MAX.
Without this, prin1 mishandles Lisp_Misc_Save_Value printing on
hosts with pre-C99 libraries, because pD is wrongly defined to "t".
Paul Eggert [Thu, 16 Jun 2011 21:25:42 +0000 (14:25 -0700)]
Improve buffer-overflow checking (Bug#8873).
Paul Eggert [Thu, 16 Jun 2011 21:19:55 +0000 (14:19 -0700)]
Merge from trunk.
Paul Eggert [Thu, 16 Jun 2011 21:18:12 +0000 (14:18 -0700)]
Improve buffer-overflow checking.
* fileio.c (Finsert_file_contents):
* insdel.c (insert_from_buffer_1, replace_range, replace_range_2):
Remove the old (too-loose) buffer overflow checks.
They weren't needed, since make_gap checks for buffer overflow.
* insdel.c (make_gap_larger): Catch buffer overflows that were missed.
The old code merely checked for Emacs fixnum overflow, and relied
on undefined (wraparound) behavior. The new code avoids undefined
behavior, and also checks for ptrdiff_t and/or size_t overflow.
Miles Bader [Thu, 16 Jun 2011 17:50:21 +0000 (02:50 +0900)]
configure.in: Try to determine CRT_DIR automatically when using gcc
Paul Eggert [Thu, 16 Jun 2011 17:44:43 +0000 (10:44 -0700)]
* editfns.c: Tune. Don't use wider integers than needed. Don't use alloca.
Use a bigger 'string' buffer. Rewrite to avoid 'n > 0' test.
Paul Eggert [Thu, 16 Jun 2011 17:25:16 +0000 (10:25 -0700)]
* editfns.c (Finsert_char): Don't dump core with very negative counts.